#pragma once

#include <Runtime/Core/Core.h>

enum class TextureFormat : byte {
	UNKNOWN,
	RGBA32_TYPELESS,
	RGBA32_FLOAT,
	RGBA32_UNSIGNED_INT,
	RGBA32_SIGNED_INT,

	RGB32_TYPELESS,
	RGB32_FLOAT,
	RGB32_UNSIGNED_INT,
	RGB32_SIGNED_INT,

	RGBA16_TYPELESS,
	RGBA16_FLOAT,
	RGBA16_UNSIGNED_NORMALIZED,
	RGBA16_UNSIGNED_INT,
	RGBA16_SIGNED_NORMALIZED,
	RGBA16_SIGNED_INT,

	RG32_TYPELESS,
	RG32_FLOAT,
	RG32_UNSIGNED_INT,
	RG32_SIGNED_INT,

	RGBA8_TYPELESS,
	RGBA8_UNSIGNED_NORMALIZED,
	RGBA8_UNSIGNED_INT,
	RGBA8_SIGNED_NORMALIZED,
	RGBA8_SIGNED_INT,

	RG16_TYPELESS,
	RG16_FLOAT,
	RG16_UNSIGNED_NORMALIZED,
	RG16_UNSIGNED_INT,
	RG16_SIGNED_NORMALIZED,
	RG16_SIGNED_INT,

	R32_TYPELESS,
	D32_FLOAT,
	R32_FLOAT,
	R32_UNSIGNED_INT,
	R32_SIGNED_INT,

	D24_UNSIGNED_NORMALIZED_S8_UNSIGNED_INT,
	R24_UNSIGNED_NORMALIZED_X8_TYPELESS,

	RG8_TYPELESS,
	RG8_UNSIGNED_NORMALIZED,
	RG8_UNSIGNED_INT,
	RG8_SIGNED_NORMALIZED,
	RG8_SIGNED_INT,

	R16_TYPELESS,
	R16_FLOAT,
	D16_UNSIGNED_NORMALIZED,
	R16_UNSIGNED_NORMALIZED,
	R16_UNSIGNED_INT,
	R16_SIGNED_NORMALIZED,
	R16_SIGNED_INT,

	R8_TYPELESS,
	R8_UNSIGNED_NORMALIZED,
	R8_UNSIGNED_INT,
	R8_SIGNED_NORMALIZED,
	R8_SIGNED_INT,
	A8_UNSIGNED_NORMALIZED
};